/*
 * app_config.cpp
 *
 *  Created on: 04.08.2013
 *      Author: SpirTanol
 */

#include "app_config.h"

// QT
#include <QFile>
#include <QDataStream>
#include <QDir>
#include <QDebug>
//=========================================================================================
AppConfig *AppConfig::sAppConfig = 0;
//=========================================================================================
AppConfig::AppConfig()
{
	oAutoConnect = false;
	oScaleType = ST_LOGO;
	oSpeedIndex = 6;
	oInterval = 60;
	oPort = 1;
}

AppConfig::~AppConfig()
{
	sAppConfig = 0;
}
//=========================================================================================
AppConfig *AppConfig::i()
{
	if (sAppConfig == 0)
		sAppConfig = new AppConfig();
	return sAppConfig;
}
//=========================================================================================
bool AppConfig::load()
{
	QFile file;
	file.setFileName("../data/config.dat");
	if (!file.open(QIODevice::ReadOnly))
	{
		oLastPath = QDir::currentPath();
		return false;
	}

	QDataStream stream(&file);

	int scaleType;

	stream >> oLastPath;
	stream >> oAutoConnect;
	stream >> scaleType;
	stream >> oInterval;

	stream >> oSpeedIndex;
	stream >> oPort;

	oScaleType = ScaleType(scaleType);

	file.close();
	return true;
}

bool AppConfig::save() const
{
	QFile file;
	file.setFileName("../data/config.dat");
	if (!file.open(QIODevice::WriteOnly)) return false;

	QDataStream stream(&file);

	stream << oLastPath;
	stream << oAutoConnect;
	stream << int(oScaleType);
	stream << oInterval;

	stream << oSpeedIndex;
	stream << oPort;

	file.close();
	return true;
}
